Computer system and control method for the computer system

ABSTRACT

A computer system including a first storage system connected to a first host computer, a second storage system connected to a second host computer and a third storage system connected to the first and second storage systems. The second storage system sets transfer setting before an occurrence of a failure, the transfer setting being provided with a dedicated storage area to be used for transferring data to the third storage system by asynchronous copy in response to a failure at the first host computer. Before the start of data transfer between the second storage system and third storage system to be executed after an occurrence of the failure, the second storage system checks the dedicated storage area, data transfer line and transfer setting information, and if an abnormal state is detected, this abnormal state is reported to the host computer as information attached to the transfer setting.

CROSS REFERENCE TO RELATED APPLICATIONS

The present application is a continuation application of applicationSer. No. 11/486,160, filed Jul. 14, 2006; now U.S. Pat. No. 7,512,757;which claims priority from Japanese application JP2006-121541 filed onApr. 26, 2006, the content of which is hereby incorporated by referenceinto this application.

BACKGROUND OF THE INVENTION

The present invention relates to configuration management or controlprocessing for a computer system, and more particularly to configurationmanagement or control processing for a computer system utilizing remotecopy and having a plurality of storage systems.

DESCRIPTION OF THE RELATED ART

Data storage markets have a need for a so-called disaster recoverysystem which prevents a data loss even if a storage system storing ahuge amount of data is destructed by disaster or the like. In order tosatisfy this market need, a computer system has been provided whichbacks up data by utilizing remote copy technology. With this technology,the same data is stored in storage systems installed at two locationssufficiently remote from each other. As data in one storage system isupdated, this update is reflected upon the other storage system byremote copy. Integrity of data in two storage systems can therefore beensured.

JP-A-2003-122509 discloses a computer system which installs storagesystems at three locations sufficiently remote from one another, inorder to improve security of data. Data integrity between a firststorage system used by ordinary business and a remote second storagesystem is retained by synchronous remote copy. Data integrity betweenthe first storage system and a remote third storage system is retainedby asynchronous remote copy.

When the first storage system becomes unable to use for business becauseof failure to be caused by disaster or the like, the second storagesystem inherits the business of the first storage system. In this case,if the second storage system cannot be used either, the third storagesystem inherits the business of the first storage system.

According to JP-A-2003-122509, before the second storage systeminherited the business of the first storage system starts operating,data integrity between the second and third storage systems is retained.After the second storage system starts operating, update of data in thesecond storage system is reflected upon the third storage system byremote copy. Therefore, when a failure occurs in the second storagesystem, the third storage system can inherit the business of the secondstorage system.

A data update method of JP-A-2005-84953 discloses means for shorteningthe time taken to retain data integrity between the second and thirdstorage systems. According to this technique, when data integritybetween the second and third storage systems is to be retained,difference data in one storage system is reflected upon the otherstorage system, to thereby reduce a copy capacity of data and thusrealize a time reduction. In this specification, data integrityretention technique disclosed in JP-A-2005-84953 is called“delta-resync”.

As disclosed in JP-A-2005-84953, however, various processings differentfrom conventional remote copy are required in order to performdelta-resync, such as check processings including acquisition of ajournal logical volume, storage of change information in the journallogical volume, comparison of change information during delta-resync.

Furthermore, if it is judged that delta-resync is impossible, duringcheck processings after the first storage system is destructed bydisaster or the like, all data is copied, posing again the issue solvedby JP-A-2005-84953. Namely, long time data copy causes the secondstorage system impossible to be used for business.

SUMMARY OF THE INVENTION

In order to solve at least one of the problems described above, anembodiment of the present invention provides a computer system having afirst storage system connected to a first host computer for establishingcommunications therewith, a second storage system connected to a secondhost computer and the first storage system for establishingcommunications therewith, and a third storage system connected to thefirst and second storage systems for establishing communicationstherewith, wherein data written from the first host computer into thefirst storage system is transferred to the second and third storagesystems. The second storage system sets transfer setting before anoccurrence of a failure, the transfer setting being provided with astorage area to be used for transferring data to the third storagesystem.

According to another embodiment, before the start of data transferbetween the second storage system and third storage system to beexecuted after an occurrence of the failure, the second storage systemchecks the dedicated storage area, data transfer line and transfersetting information, and a check result is reported to the host computeras information attached to the transfer setting.

According to the embodiments of the present invention, the host computercan monitor in advance data transfer setting by the second and thirdstorage systems, so that an unable state of delta-resync can beeliminated.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a logical configuration according to oneembodiment of the present invention.

FIG. 2 is a block diagram of a storage system in accordance with oneembodiment of the present invention.

FIG. 3 is a diagram illustrating the relationship between updateinformation and write data according to one embodiment of the presentinvention.

FIG. 4 is a diagram illustrating an example of volume informationaccording to one embodiment of the present invention.

FIG. 5 is a diagram illustrating an example of pair informationaccording to one embodiment of the present invention.

FIG. 6 is a block diagram illustrating an example of group informationaccording to one embodiment of the present invention.

FIG. 7 is a block diagram illustrating an example of pointer informationaccording to one embodiment of the present invention.

FIG. 8 is a diagram illustrating the structure of a journal logicalvolume according to one embodiment of the present invention.

FIG. 9 is a flowchart illustrating the procedure for initiating datareplication according to one embodiment of the present invention.

FIG. 10 is a flowchart illustrating an initial copy processing accordingto one embodiment of the present invention.

FIG. 11 is a diagram illustrating a command reception processingaccording to one embodiment of the present invention.

FIG. 12 is a flowchart illustrating the command reception processingaccording to one embodiment of the present invention.

FIG. 13 is a flowchart illustrating a journal creation processingaccording to one embodiment of the present invention.

FIG. 14 is a diagram illustrating a journal read reception processingaccording to one embodiment of the present invention.

FIG. 15 is a flowchart illustrating the journal read receptionprocessing according to one embodiment of the present invention.

FIG. 16 is a diagram illustrating a journal read processing according toone embodiment of the present invention.

FIG. 17 is a flowchart illustrating the journal read processingaccording to one embodiment of the present invention.

FIG. 18 is a flowchart illustrating a journal store processing accordingto one embodiment of the present invention.

FIG. 19 is a diagram illustrating a restore processing according to oneembodiment of the present invention.

FIG. 20 is a flowchart illustrating the restore processing according toone embodiment of the present invention.

FIG. 21 is a diagram illustrating an example of update informationaccording to one embodiment of the present invention.

FIG. 22 is a diagram illustrating an example of update information whena journal creation processing is performed according to one embodimentof the present invention.

FIG. 23 is a flowchart illustrating a remote write command receptionprocessing according to one embodiment of the present invention.

FIG. 24 is a flowchart illustrating a journal replication processingaccording to one embodiment of the present invention.

FIG. 25 is a flowchart illustrating the procedure for resuming datareplication among storage systems in the event a primary storage system100A fails according to one embodiment of the present invention.

FIG. 26 is a diagram illustrating an example of volume informationaccording to one embodiment of the present invention.

FIG. 27 is a diagram illustrating an example of pair informationaccording to one embodiment of the present invention.

FIG. 28 is a diagram illustrating an example of group informationaccording to one embodiment of the present invention.

FIG. 29 is a diagram illustrating an example of pointer informationaccording to one embodiment of the present invention.

FIG. 30 is a diagram illustrating the structure of a journal logicalvolume according to one embodiment of the present invention.

FIG. 31 is a diagram illustrating an example of volume informationaccording to one embodiment of the present invention.

FIG. 32 is a diagram illustrating an example of pair informationaccording to one embodiment of the present invention.

FIG. 33 is a diagram illustrating an example of group informationaccording to one embodiment of the present invention.

FIG. 34 is a diagram illustrating an example of pointer informationaccording to one embodiment of the present invention.

FIG. 35 is a diagram illustrating the structure of a journal logicalvolume according to one embodiment of the present invention.

FIG. 36 is a diagram illustrating an example of pair informationaccording to one embodiment of the present invention.

FIG. 37 is a diagram illustrating an example of group informationaccording to one embodiment of the present invention.

FIG. 38 is a diagram illustrating an example of volume informationaccording to one embodiment of the present invention.

FIG. 39 is a diagram illustrating an example of pair informationaccording to one embodiment of the present invention.

FIG. 40 is a diagram illustrating an example of group informationaccording to one embodiment of the present invention.

FIG. 41 is a diagram illustrating an example of pointer informationaccording to one embodiment of the present invention.

FIG. 42 is a block diagram illustrating the operation which is performedin the event the primary storage system 100A fails according to oneembodiment of the present invention.

FIG. 43 is a flowchart illustrating a delta recovery processingaccording to one embodiment of the present invention.

FIG. 44 is a block diagram illustrating the logical configuration of aportion regarding the host computer 180 and delta-resync according toone embodiment of the present invention.

FIG. 45 is a diagram illustrating an example of GUI according to oneembodiment of the present invention.

FIG. 46 is a diagram illustrating a processing of judging whetherdelta-resync is possible according to one embodiment of the presentinvention.

DESCRIPTION OF THE EMBODIMENTS

Embodiments of the present invention will be described in detail withreference to the accompanying drawings.

FIG. 1 is a block diagram of a logical configuration of one embodimentof the present invention. According to the present embodiment, a hostcomputer 180 and a storage system 100A are connected by a connectionpath 190, and the storage system 100A is connected to a storage system100B and a storage system 100C, which have replications of data storedin the storage system 100A, by connection paths 200. Furthermore, thestorage system 100B and the storage system 100C are connected by theconnection path 200. In the following description, in order todistinguish between the storage system 100 storing data of a subject ofreplication and the storage system 100 storing replication data, thestorage system 100 storing data of a subject of replication is called aprimary storage system 100A in some cases and the storage system 100storing replication data is called a secondary storage system in somecases. Storage areas within each storage system are managed in dividedareas, and each divided storage area is called a logical volume.

In the embodiments, it is assumed that the data update method describedin JP-A-2005-84953 is implemented in the storage system 100. Namely, thestorage system is implemented with a program for realizing“delta-resync” which uses a pair of a replication subject andreplication data, by transferring only a difference between journals ofthe storage systems B and C when a failure occurs in the storage system100A or host computer 180.

The capacity and the physical storage position (a physical address) ofeach logical volume 230 within each storage system 100 can be designatedusing a maintenance terminal, such as a computer, or the host computer180 connected to the storage system 100. The physical address of eachlogical volume 230 is stored in volume information 400, described later.A physical address is, for example, a number (a storage device number)that identifies a storage device 150 (see FIG. 2) within the storagesystem 100 and a numerical value that uniquely identifies a storage areawithin the storage device 150, such as a position from the head of astorage area in the storage device 150. In the following description, aphysical address shall be a combination of a storage device number and aposition from the head of a storage area within a storage device.Although a logical volume is a storage area of one storage device in thefollowing description, one logical volume can be correlated to storageareas of a plurality of storage devices by converting logical addressesand physical addresses.

Data stored in each storage system 100 can be uniquely designated forreferencing and updating purposes by using a number (a logical volumenumber) that identifies a logical volume and a numerical value thatuniquely identifies a storage area, such as a position from the head ofa storage area of a logical volume; a combination of a logical volumenumber and a position from the head of a storage area in the logicalvolume (a position within logical address) shall hereinafter be called alogical address.

In the following description, in order to readily differentiate datathat is the subject of replication from replicated data, the logicalvolume 230 with data that is the subject of replication shall be calleda primary logical volume, while the logical volumes 230 with replicateddata shall be called secondary logical volumes. A primary logical volumeand a corresponding secondary logical volume shall be called a pair. Thestate and relationship between a primary logical volume and a secondarylogical volume are stored in pair information 500, described later.

A management unit called a group is provided in order to maintain theorder of data update between logical volumes. For example, let us assumethat the host computer 180 updates data 1 in a primary logical volume 1,and subsequently reads data 1 and uses numerical values of the data 1 toperform a processing to update data 2 in a primary logical volume 2.When a data replication processing from the primary logical volume 1 toa secondary logical volume 1, and a data replication processing from theprimary logical volume 2 to a secondary logical volume 2, take placeindependently, the replication processing of data 2 to the secondarylogical volume 2 may take place before the replication processing ofdata 1 to the secondary logical volume 1. If the replication processingof data 1 to the secondary logical volume 1 is halted due to a failurethat occurs between the replication processing of data 2 to thesecondary logical volume 2 and the replication processing of data 1 tothe secondary logical volume 1, the data integrity between the secondarylogical volume 1 and the secondary logical volume 2 is lost. In order tomaintain data integrity between the secondary logical volume 1 and thesecondary logical volume 2 even in such instances, logical volumes whosedata update order must be maintained are registered in the same group,so that an update number from group information 600, described later, isallocated to each logical volume within one group, and a replicationprocessing to the secondary logical volumes is performed in the order ofupdate numbers. Update times may be used in place of update numbers. Forexample, in FIG. 1, a logical volume (DATA 1) and a logical volume (DATA2) form a group 1 in the primary storage system 100A. Furthermore, alogical volume (data 1), which is a replication of the logical volume(DATA 1), and a logical volume (data 2), which is a replication of thelogical volume (DATA 2), form a group 1 in the secondary storage system100C. Similarly, a logical volume (COPY 1), which is a replication ofthe logical volume (DATA 1), and a logical volume (COPY 2), which is areplication of the logical volume (DATA 2), form a group 1 in thesecondary storage system 100B.

When updating data of the primary logical volumes (DATA 1, DATA 2) thatare the subject of replication, the primary storage system 100A createsjournals, described later, and stores them in a logical volume of theprimary storage system 100A in order to update data of the secondarylogical volumes (COPY 1, COPY 2). In the description of the presentembodiment example, a logical volume that stores journals only(hereinafter called a “journal logical volume”) is allocated to eachgroup. In FIG. 1, the journal logical volume for group 1 is a logicalvolume (JNL 1).

Similarly, when updating data in the secondary logical volumes (data 1,data 2) of the secondary storage system 100C, the secondary storagesystem 100C creates journals, described later, and stores them in ajournal logical volume within the secondary storage system 100C. In FIG.1, the journal logical volume for group 1 is a logical volume (jnl 1).

A journal logical volume is allocated to each group within the secondarystorage system 100B as well. Each journal logical volume is used tostore journals that are transferred from the primary storage system 100Ato the secondary storage system 100B. When there is a high load on thesecondary storage system 100B, instead of updating data of the secondarylogical volumes (COPY 1, COPY 2) when the journals are received, thedata of the secondary logical volumes (COPY 1, COPY 2) can be updatedlater when the load on the secondary storage system 100B is low, forexample, by storing journals in the journal logical volume. Furthermore,if there is a plurality of connection paths 200, the transfer ofjournals from the primary storage system 100A to the secondary storagesystem 100B can be performed in a multiplex manner to make effective useof the transfer capability of the connection paths 200. Numerousjournals may accumulate in the secondary storage system 100B due toupdate order, but this does not pose any problem since journals thatcannot be used immediately for data updating of the secondary logicalvolumes can be stored in the journal logical volume. In FIG. 1, thejournal logical volume for group 1 is a logical volume (JNL 2).

Each journal is comprised of write data and update information. Theupdate information is information for managing write data, and comprisesof the time at which a write command was received (update time), a groupnumber, an update number in the group information 600 described later, alogical address of the write command, the size of the write data, andthe logical address in the journal logical volume where the write datais stored. The update information may have only either the time at whichthe write command was received or the update number. If the time atwhich the write command was created is in the write command from thehost computer 180, the time at which the write command was created canbe used instead of the time at which the write command was received.Using FIGS. 3 and 21, an example of update information of a journal willbe described. Update information 310 stores a write command that wasreceived at 22:20:10 on Mar. 17, 1999. The write command is a command tostore write data at position 700 from the head of a storage area of alogical volume number 1, and the data size is 300. The write data in thejournal is stored beginning at position 1500 from the head of a storagearea in a logical volume number 4 (the journal logical volume). Fromthis, it can be seen that the logical volume whose logical volume numberis 1 belongs to group 1 and that this is the fourth data update sincedata replication of group 1 began.

As shown in FIG. 3, each journal logical volume is divided into astorage area for storing update information (an update information area)and a storage area for storing write data (a write data area), forexample. In the update information area, update information is storedfrom the head of the update information area in the order of updatenumbers; when the update information reaches the end of the updateinformation area, the update information is stored from the head of theupdate information area again. In the write data area, write data arestored from the head of the write data area; when the write data reachthe end of the write data area, the write data are stored from the headof the write data area again. The ratio of the update information areato the write data area can be a fixed value or set through a maintenanceterminal or the host computer 180. Such information is stored in pointerinformation 700, described later. In the following description, eachjournal logical volume is divided into areas for update information andwrite data; however, a method in which journals, i.e., updateinformation and corresponding write data, are consecutively stored fromthe head of a logical volume can also be used.

Referring to FIG. 1, an operation for reflecting data update made to theprimary logical volume (DATA 1) of the primary storage system 100A onthe secondary logical volume (data 1) of the secondary storage system100C and the secondary logical volume (COPY 1) of the secondary storagesystem 100B will be generally described.

(1) Upon receiving a write command for data in the primary logicalvolume (DATA 1) from the host computer 180, the primary storage system100A updates data in the primary logical volume (DATA 1), storesjournals in the journal logical volume (JNL 1), and issues a command tothe secondary system 100C to update the corresponding data in thesecondary logical volume (data 1) in the secondary system 100C (a remotewrite command), through a command reception processing 210 and aread/write processing 220 described later (270 in FIG. 1).

(2) Upon receiving the remote write command from the primary storagesystem 10A, the secondary storage system 100C updates corresponding datain the secondary logical volume (data 1) and stores the journals in thejournal logical volume on 11) through the command reception processing210 and the read/write processing 220, described later (270 in FIG. 1).

(3) After receiving a response to the remote write command, the primarystorage system 100A reports the end of the write command to the hostcomputer 180. As a result, data in the primary logical volume (DATA 1)in the primary storage system 100A and data in the secondary logicalvolume (data 1) in the secondary storage system 100C match completely.Such data replication is called synchronous data replication.

(4) The secondary storage system 100B reads the journals from theprimary storage system 100 A through a journal read processing 240,described later, and stores the journals in the journal logical volume(JNL 2) through the read/write processing 220 (280 in FIG. 1).

(5) Upon receiving a journal read command from the secondary storagesystem 100B, the primary storage system 100A reads the journals from thejournal logical volume (JNL 1) and sends the journals to the secondarystorage system 100B through the command reception processing 210 and theread/write processing 220, described later (280 in FIG. 1).

(6) The secondary storage system 100B uses the pointer information 700through a restore processing 250 and the read/write processing 220,described later, to read the journals from the journal logical volume(JNL 2) in ascending order of update numbers and updates data in thesecondary logical volume (COPY 1) (290 in FIG. 1). As a result, data inthe primary logical volume (DATA 1) in the primary storage system 100Aand data in the secondary logical volume (COPY 1) in the secondarystorage system 100B match completely some time after the update of theprimary logical volume (DATA 1). Such data replication is calledasynchronous data replication.

The internal configuration of the storage system 100 is shown in FIG. 2.Each storage system 100 is comprised of one or more host adapters 110,one or more disk adapters 120, one or more cache memories 130, one ormore shared memories 140, one or more storage devices 150, one or morecommon paths 160, and one or more connection lines 170. The hostadapters 110, the disk adapters 120, the cache memories 130 and theshared memories 140 are mutually connected by the common paths 160. Thecommon paths 160 may be redundant in case of a failure of one of thecommon paths 160. The disk adapters 120 and the storage devices 150 areconnected by the connection lines 170. In addition, although not shown,a maintenance terminal for setting, monitoring and maintaining thestorage system 100 is connected to every host adapter 110 and every diskadapter 120 by a dedicated line.

Each host adapter 110 controls data transfer between the host computer180 and the cache memories 130. Each host adapter 110 is connected tothe host computer 180 or another storage system 100 via a connectionline 190 and the connection path 200, respectively. Each disk adapter120 controls data transfer between the cache memories 130 and thestorage devices 150. The cache memories 130 are memories for temporarilystoring data received from the host computer 180 or data read from thestorage devices 150. The shared memories 140 are memories shared by allhost adapters 110 and disk adapters 120 within the same storage system100.

The volume information 400 is information for managing logical volumesand includes volume state, format, capacity, synchronous pair number,asynchronous pair number, and physical address. FIG. 4 shows an exampleof the volume information 400. The volume information 400 is stored in amemory, such as the shared memories 140, that can be referred to by thehost adapters 110 and the disk adapters 120. The volume state is one of“normal,” “primary,” “secondary,” “abnormal,” and “blank.” The logicalvolume 230 whose volume state is “normal” or “primary” indicates thatthe logical volume 230 can be accessed normally from the host computer180. The logical volume 230 whose volume state is “secondary” can allowaccess from the host computer 180. The logical volume 230 whose volumestate is “primary” indicates that it is the logical volume 230 fromwhich data is being replicated. The logical volume 230 whose volumestate is “secondary” indicates that it is the logical volume 230 onwhich replication is made. The logical volume 230 whose volume state is“abnormal” indicates that it is the logical volume 230 that cannot beaccessed normally due to a failure. A failure may be a malfunction ofthe storage device 150 that has the logical volume 230, for example. Thelogical volume 230 whose volume state is “blank” indicates that it isnot in use. Synchronous pair numbers and asynchronous pair numbers arevalid if the corresponding volume state is “primary” or “secondary,” andeach stores a pair number for specifying the pair information 500,described later. If there is no pair number to be stored, an invalidvalue (for example, “0”) is set. In the example shown in FIG. 4, alogical volume 1 has OPEN 3 as format, a capacity of 3 GB, its datastored from the head of a storage area of the storage device 150 whosestorage device number is 1, is accessible, and is a subject of datareplication.

The pair information 500 is information for managing pairs and includesa pair state, a primary storage system number, a primary logical volumenumber, a secondary storage system number, a secondary logical volumenumber, a group number, and a copy complete address (i.e., copiedaddress). FIG. 5 shows an example of the pair information 500. The pairinformation 500 is stored in a memory, such as the shared memories 140,that can be referred to by the host adapters 110 and the disk adapters120.

The pair state holds one of “normal”, “abnormal”, “blank”, “copying”,“not copied”, “delta-ready”, “delta-processing” and “abnormal delta”. Ifthe pair state is “normal,” it indicates that data of the primarylogical volume 230 is replicated normally. If the pair state is“abnormal,” it indicates that data in the primary logical volume 230cannot be replicated due to a failure. A failure can be a disconnectionof the connection path 200, for example. If the pair state is “blank,”it indicates that the corresponding pair number information is invalid.If the pair state is “copying,” it indicates that an initial copyprocessing, described later, is in progress. If the pair state is “notcopied,” it indicates that the initial copy processing, described later,has not yet taken place. If the pair state is “delta-ready”, itindicates that delta-resync can be performed. If the pair state is“delta-processing”, it indicates a preparatory state before transitionto delta-ready. If the pair state is “abnormal delta”, it indicates thatdelta-resync or delta-resync preparation is not operated normallybecause a failure occurs in a journal logical volume or the like to beused for delta-resync. The primary storage system number is a numberthat specifies the primary storage system 100A that has the primarylogical volume 230. The secondary storage system number is a number thatspecifies the secondary storage system 100B that has the secondarylogical volume 230. The group number is a group number to which theprimary logical volume belongs to, if the storage system is the primarystorage system. The group number is a group number to which thesecondary logical volume belongs to, if the storage system is asecondary storage system. The copy complete address will be describedwhen the initial copy processing is described later. Pair information 1in FIG. 5 indicates that the subject of data replication is the primarylogical volume 1 in the primary storage system A, that the datareplication destination is the secondary logical volume 1 in thesecondary storage system B, and that the data replication processing hastaken place.

FIG. 6 shows an example of the group information 600. The groupinformation 600 contains information on a group state, a pair set, ajournal logical volume number, an update number, a replication type, apartner storage system number, a partner group number, and a deltareservation option. The group information 600 is stored in a memory,such as the shared memories 140, that can be referred to by the hostadapters 110 and the disk adapters 120.

The group state is one of “normal,” “abnormal,” “blank,” “halted,” and“in preparation.” If the group state is “normal,” it indicates that atleast one pair state in the corresponding pair sets is in the “normal”state. If the group state is “abnormal,” it indicates that all pairstates in the corresponding pair sets are in the “abnormal” state. Ifthe group state is “blank,” it indicates that corresponding group numberinformation is invalid. If the storage system is the primary storagesystem, the “halted” group state indicates that journals will not becreated temporarily. The state is used when the group state is “normal”and journal creation is to be halted temporarily. If the storage systemis a secondary storage system, the “halted” group state indicates thatthe journal read processing will not be carried out temporarily. Thestate is used when the group state is “normal” and reading journals fromthe primary storage system is to be temporarily halted. If the groupstate is “in preparation,” it indicates that a data replicationinitiation processing, described later, is in progress. If the storagesystem is the primary storage system, each pair set includes pairnumbers of all primary logical volumes that belong to the groupindicated by the corresponding group number. If the storage system is asecondary storage system, each pair set includes pair numbers of allsecondary logical volumes that belong to the group indicated by thecorresponding group number. The journal logical volume number indicatesthe journal logical volume number that belongs to the group with thecorresponding group number. If there is no journal logical volume thatbelongs to the group with the corresponding group number, an invalidvalue (for example, “0”) is set. The update number has an initial valueof 1 and changes whenever a journal is created. The update number isstored in the update information of journals and used by the secondarystorage system 100B to maintain the order of data update.

The replication type is either “synchronous” or “asynchronous.” If thereplication type is “synchronous,” the primary logical volume and thesecondary logical volume are updated simultaneously. As a result, datain the primary logical volume and data in the secondary logical volumematch completely. If the replication type is “asynchronous,” thesecondary logical volume is updated after the primary logical volume isupdated. As a result, data in the primary logical volume and data in thesecondary logical volume sometimes do not match (i.e., data in thesecondary logical volume is old data of the primary logical volume), butdata in the secondary logical volume completely matches data in theprimary logical volume after some time.

If the storage system is the primary storage system, the partner storagesystem number is the secondary storage system number that has the pairedsecondary logical volume that belongs to the corresponding group. If thestorage system is a secondary storage system, the partner storage systemnumber is the primary storage system number that has the paired primarylogical volume that belongs to the corresponding group. If the storagesystem is the primary storage system, the partner group number is thegroup number to which the paired secondary logical volume of thecorresponding group belongs. If the storage system is a secondarystorage system, the partner group number is the group number to whichthe paired primary logical volume of the corresponding group belongs.

The delta reservation option holds information representative of whetherthe group is registered as a group for delta-resync. In this embodiment,if the delta reservation option is “0”, it indicates that the group isregistered as a general group, whereas if the delta reservation optionis “1”, it indicates that the group is registered as a delta-resyncgroup. For example, it can be seen from pair information 1 and 2 thatgroup information 1 shown in FIG. 6 is constituted of primary logicalvolumes 1 and 2 and a journal logical volume 4, and that the group canexecute a data replication processing (asynchronous) normally as ageneral group.

The pointer information 700 is stored for each group and is informationfor managing the journal logical volume for the corresponding group; itincludes an update information area head address, a write data area headaddress, an update information latest address, an update informationoldest address, a write data latest address, a write data oldestaddress, a read initiation address, and a retry initiation address. Theupdate information area head address is the logical address at the headof the storage area for storing update information in the journallogical volume (update information area). The write data area headaddress is the logical address at the head of the storage area forstoring write data in the journal logical volume (write data area). Theupdate information latest address is the head logical address to be usedfor storing update information when a journal is stored next. The updateinformation oldest address is the head logical address that storesupdate information of the oldest (i.e., having the lowest update number)journal. The write data latest address is the head logical address to beused for storing write data when a journal is stored next. The writedata oldest address is the head logical address that stores write dataof the oldest (i.e., the having the lowest update number) journal. Theread initiation address and the retry initiation address are used onlyin the primary storage system 100A in the journal read receptionprocessing, described later.

In the example of the pointer information 700 shown in FIGS. 7 and 8,the area for storing journal update information (the update informationarea) spans from the head of the storage areas to position 699 of thelogical volume 4, while the area for storing journal write data (thewrite data area) spans from position 700 to position 2699 of the storageareas of the logical volume 4. The journal update information is storedfrom position 200 to position 499 of the storage areas of the logicalvolume 4, and the next journal update information will be storedbeginning at position 500 of the storage areas of the logical volume 4.The journal write data is stored from position 1300 to position 2199 ofthe storage areas of the logical volume 4, and the next journal writedata will be stored beginning at position 2200 of the storage areas ofthe logical volume 4.

Although a mode in which one journal logical volume is allocated to eachgroup is described below, a plurality of journal logical volumes may beallocated to each group. For example, two journal logical volumes can beallocated to one group, and the pointer information 700 can be providedfor each journal logical volume, so that journals can be stored in thetwo journal logical volumes alternately. By doing this, writing thejournals to the storage device 150 can be distributed, which can improveperformance. Furthermore, this can also improve the journal readperformance. Another example would be one in which two journal logicalvolumes are allocated to one group, but only one journal logical volumeis normally used. The other journal logical volume is used when theperformance of the journal logical volume that is normally used declinesor the journal logical volume that is normally used fails and cannot beused. An example of the declining performance of the logical volume thatis normally used is a case in which a journal logical volume iscomprised of a plurality of storage devices 150, where data are storedin RAID method, and at least one storage device 150 that comprises theRAID fails.

It is preferable for the volume information 400, the pair information500, the group information 600 and the pointer information 700 to bestored in the shared memories 140. However, the present embodimentexample is not limited to this and the information can be storedtogether or dispersed among the cache memories 130, the host adapters110, the disk adapters 120, and/or storage devices 150.

Next, a procedure for initiating data replication (a data replicationinitiation processing) from the primary storage system 100A to thesecondary storage system 100B and the secondary storage system 100C willbe described using FIGS. 9 and 10. The procedure can for example be acontrol program stored on a computer readable storage medium executableby a computer system.

(1) Group creation will be described (step 900). The host computer 180refers to the group information 600 of the primary storage system 100Aand acquires a group number A having the group state “blank”. Similarly,the host computer 180 acquires a group number B of the secondary storagesystem 100B (or secondary storage system 100C). The host computer 180instructs the primary storage system 100A to create a group. A groupcreation instruction is constituted of an instruction subject groupnumber A, a partner storage system number B, a partner group number B, areplication type and a delta reservation option. The delta reservationoption is an option instructing whether the group is registered as thegeneral group or as a delta-resync group. In this embodiment,description will be made assuming that if the delta reservation optionis “0” or is omitted, the group is registered as the general group,whereas if it is “1”, the group is registered as a delta-resync group.The instruction at this step has the delta reservation option “0”.

Upon receiving the group creation instruction, the primary storagesystem 100A makes changes to the group information 600. Specifically,the primary storage system 100A changes the group state of the groupinformation 600 of the instruction subject group number A to “inpreparation”, the partner storage system number to the designatedpartner storage system number B, the partner group number to theinstructed partner group number B, the replication type to theinstructed replication type, and the delta reservation option to theinstructed delta reservation option. The primary storage system 100Asets the update number of the group information 600 to 1 (initialvalue). Furthermore, the primary storage system 100A gives a groupcreation instruction to the storage system having the partner storagesystem number B. The instruction subject group number of the groupcreation instruction is the partner group number B, the partner storagesystem number is the storage system number of the primary storage system10A, the partner group number is the instruction object group number A,the replication type is the instructed replication type, and the deltareservation option is the instructed delta reservation option.

(2) Next, pair registration (step 910) will now be described. Using themaintenance terminal or the host computer 180, the user designatesinformation that indicates the subject of data replication andinformation that indicates the data replication destination and gives apair registration instruction to the primary storage system 100A. Theinformation that indicates the subject of data replication is the groupnumber A and the primary logical volume number A that are the subject ofdata replication. The information that indicates the data replicationdestination is the secondary logical volume number B in the secondarystorage system 100 B for storing the replication data.

Upon receiving the pair registration instruction, the primary storagesystem 100A obtains a pair number whose pair state is “blank” from thepair information 500 and sets “not copied” as the pair state; theprimary storage system number A that indicates the primary storagesystem 100A as the primary storage system number; the primary logicalvolume number A instructed as the primary logical volume number; thepartner storage system number of the group number A in the groupinformation 600 as the secondary storage system number; the secondarylogical volume number B instructed as the secondary logical volumenumber; and the group number A instructed as the group number. Theprimary storage system 100A adds the pair number obtained for the groupnumber A instructed to the pair set in the group information 600, andchanges the volume state of the primary logical volume number A to“primary.”

The primary storage system 100A notifies the partner storage system forthe group number A instructed in the group information 600 of theprimary storage system number A indicating the primary storage system100A, the partner group number B for the group number A in the groupinformation 600, the primary logical volume number A, and the secondarylogical volume number B, and commands a pair registration. The secondarystorage system 100B obtains a blank pair number whose pair state is“blank” from the pair information 500 and sets “not copied” as the pairstate; the primary storage system number A notified as the primarystorage system number; the primary logical volume number A notified asthe primary logical volume number; the secondary storage system number Bas the secondary storage system number; the secondary logical volumenumber B notified as the secondary logical volume number; and the groupnumber B notified as the group number. Additionally, the secondarystorage system 100B adds the pair number obtained to the pair set forthe group number B instructed in the group information 600, and changesthe volume state of the secondary volume number B to “secondary.”

The above operation is performed on all pairs that are the subject ofdata replication.

Although registering logical volumes with a group and setting logicalvolume pairs are performed simultaneously according to the processing,they can be done individually.

(3) Next, journal logical volume registration (step 920) will bedescribed. Using the maintenance terminal or the host computer 180, theuser gives the primary storage system 100 A an instruction to registerthe logical volume to be used for storing journals (a journal logicalvolume) with a group (a journal logical volume registrationinstruction). The journal logical volume registration instruction iscomprised of a group number and a logical volume number.

The primary storage system 100A registers the logical volume numberinstructed as the journal logical volume number for the group numberinstructed in the group information 600. In addition, the primarystorage system 100 A sets the volume state of the logical volume to“normal” in the volume information 400.

Similarly, using the maintenance terminal or the host computer 180, theuser refers to the volume information 400 for the secondary storagesystem 100B, designates the secondary storage system 100B, the groupnumber B, and the logical volume number to be used as the journallogical volume, and gives a journal logical volume registrationinstruction to the primary storage system 100A. The primary storagesystem 100A transfers the journal logical volume registrationinstruction to the secondary storage system 100B. The secondary storagesystem 100B registers the logical volume number instructed as thejournal logical volume number for the group number B instructed in thegroup information 600. In addition, the secondary storage system 100Bsets the volume state for the corresponding logical volume to “normal”in the volume information 400.

Alternatively, using the maintenance terminal of the secondary storagesystem 100B or the host computer 180 connected to the secondary storagesystem 100B, the user may designate the group number and the logicalvolume number to be used as the journal logical volume and give ajournal logical volume registration instruction to the secondary storagesystem 100B. The user would then do the same with the secondary storagesystem 100C.

The operations described are performed on all logical volumes that areto be used as journal logical volumes. However, step 910 and step 920may be reversed in order.

(4) Next, data replication processing initiation (step 930) will bedescribed. Using the maintenance terminal or the host computer 180, theuser designates a group number C, whose replication type is synchronous,and the group number B, whose replication type is asynchronous, forinitiating the data replication processing, and instructs the primarystorage system 100A to initiate the data replication processing. Theprimary storage system 100A sets all copy complete addresses in the pairinformation 500 that belong to the group B to 0.

The primary storage system 100A instructs the partner storage system100B for the group number B in the group information 600 to change thegroup state of the partner group number of the group number B in thegroup information 600 to “normal” and to initiate the journal readprocessing and the restore processing, described later. The primarystorage system 100A instructs the partner storage system 100 C for thegroup number C in the group information 600 to change the group state ofthe partner group number of the group number C to “normal” in the groupinformation 600.

The primary storage system 100A changes the group state of the groupnumber C and of the group number B to “normal” and initiates the initialcopy processing, described later.

Although the synchronous data replication processing initiation and theasynchronous data replication processing initiation are instructedsimultaneously according to the description, they can be performedindividually.

(5) Next, an initial copy processing end (step 940) will be described.

When the initial copying is completed, the primary storage system 100Anotifies the end of the initial copy processing to the secondary storagesystem 100B and the secondary storage system 100C. The secondary storagesystem 100B and the secondary storage system 100C change the pair stateof every secondary logical volume that belongs to either the group B orthe group C to “normal.”

(6) Group creation for delta-resync will be described (step 950). Thehost computer 180 instructs to create a group for delta-resync. A groupcreation instruction is constituted of an instruction subject groupnumber C, a partner storage system number B, a partner group number B, areplication type and a delta reservation option. In this case, the deltareservation option is “1”.

Upon receiving the group creation instruction, the secondary storagesystem 100C changes the group information. Specifically, the secondarystorage system 100C changes the group state of the group information 600of the instruction subject group number C to “halt”, the partner storagesystem number to the instructed storage system number B, the partnergroup number to the instructed partner group number B, the replicationtype to the instructed replication type, and the delta reservationoption to the instructed delta reservation option. The secondary storagesystem 100C instructs the storage system of the partner storage systemnumber B to create a group. The instruction subject group number of thegroup creation instruction is set to the partner group number B, thepartner storage system number is set to the storage system number of thesecondary storage system 100C, the partner group number is set to theinstruction subject group number C, the replication type is set to theinstructed replication type, and the delta reservation option is set tothe instructed delta reservation option.

(7) Pair registration for delta-resync will be described (step 960). Thehost computer 180 designates information representative of a datareplication subject and information representative of data replicationdestination, and instructs the secondary storage system 100C to registera pair. The information representative of a data replication subjectincludes the group number C of the data replication subject and theprimary logical volume number C. The information representative of adata replication destination includes the secondary logical volumenumber B of the secondary storage system 100B storing replication data.

Upon receiving the pair registration instruction, the secondary storagesystem 100C acquires a pair number having pair information “blank” fromthe pair information 500. Since the delta reservation option of thecorresponding group number C is “1”, “delta-processing” is set to thepair state, the primary storage system number C representative of thesecondary storage system 100C is set to the primary storage systemnumber, the instructed primary logical volume number C is set to theprimary logical volume number, the partner storage system number of thegroup number C of the group information 600 is set to the secondarystorage system, the instructed secondary logical volume number B is setto the secondary logical volume number, and the instructed group numberC is set to the group number. The acquired pair number is added to thepair set of the group information 600 of the instructed group number C.

The secondary storage system 100C notifies the partner storage system inthe group information 600 of the instructed group number C, the primarystorage system number C indicating the secondary storage system 100C,the partner group number B, primary logical volume number C andsecondary logical volume number B respectively of the group information600 of the group number C, and then instructs to register the pair. Thesecondary storage system 100B acquires a pair number having pairinformation “blank” from the pair information 500. Since the deltareservation option of the corresponding group number B is “1”,“delta-processing” is set to the pair state, the notified primarystorage system number C is set to the primary storage system number, thenotified primary logical volume number C is set to the primary logicalvolume number, the notified primary logical volume number C is set tothe primary logical volume number, the notified secondary storage systemnumber B is set to the secondary storage system number, the notifiedsecondary volume number B is set to the secondary logical volume number,and the notified group number B is set to the group number. Thesecondary storage system 100B adds the acquired pair number to the pairset of the group information of the instructed group number B.

The above operations are performed for all pairs which are the subjectsof delta-resync.

(8) A delta reservation processing will be described (step 970). Thehost computer 180 designates a group number C whose replication type isasynchronous and delta reservation option is “1”, for starting the deltareservation processing, and instructs the secondary storage system 100Cto start the delta reservation processing. Delta-resync is a processingby which only differences between the primary logical volume A of theprimary storage system 100A and paired secondary logical volumes B and Cof the secondary storage systems 100B and 100C are copied to establishdata synchronization.

Upon receiving the instruction, the secondary storage system 100C checkswhether delta-resync is possible. Namely, it is judged whetherreplication subjects of two groups having the pair registered fordelta-resync are coincident and the pair numbers are coincident. If itis judged that delta-resync is possible, the pair state of the pairinformation 500 of the corresponding group number is changed to“delta-ready”. These operations are the delta reservation processing.

Next, a judgement processing at step 970 will be described in detailwith reference to FIG. 46.

First, the storage system 100C acquires a first pair number of the pairset described in the group information of delta reservation designation(step 4610).

The storage system 100C extracts pair information having the secondarystorage system number and secondary logical volume number having thesame numbers as the primary storage system number C and primary logicalvolume number C of the pair having the designated group number C, fromthe pair information 500, and acquires a primary storage system numberA1 and a primary logical volume number A1 from the extracted pairinformation (step 4630). Next, the storage system 100C acquires aprimary storage system number A2 and a primary logical volume number A2of a pair which has, as their replication destination, the secondarystorage system number B and secondary logical volume number Dcorresponding to the primary storage system number C and primary logicalvolume number C and has a group number whose delta reservation option isnot “1”, from the secondary storage system 100B having the secondarylogical volume number B corresponding to the primary storage systemnumber C and primary logical volume number C (step 4640). The storagesystem 100C judges whether the acquired primary storage system number A1and primary logical volume number A1 are coincident with the acquiredprimary storage system number A2 and primary logical volume number A2(step 4650). This judgement is performed for all pairs having thedesignated group number C at a loop from step 4620 to step 4660.

If this judgement (step 4650) indicates incoincidence, the deltareservation processing is terminated as an error.

It is judged whether comparison of the designated pair is completed(step 4670), and if completed, it is judged through comparison whetherthe journal data is transferred which is necessary for delta-resync.

First, the storage system 100C acquires, from the secondary storagesystem 100B having the partner storage system number B written in thegroup number having the designated group number C and the deltareservation option of “1”, in the group information 600, a numericalvalue B1 obtained by adding “1” to an update number B of the grouphaving a pair which has the same secondary logical volume as thesecondary logical volume of the pair belonging to the group having thepartner group number B written in the group number (step 4672). Next,the storage system 100C refers to the pointer information 700 to checkwhether it has the journal of the update number B. The storage system100C reads update information of an update information oldest address ofthe pointer information from the storage device 150 to obtain the oldest(smallest) update number C (step 4674). The storage system C comparesthe value acquired at step 4672 with the value acquired at step 4674(step 4676), and if the update number C is equal to or smaller than theacquired update number B1, it means that the storage system has thejournal of the update number B, so that it is judged that delta-resyncis possible (step 4678).

FIG. 10 is a flowchart of the initial copy processing. In the initialcopy processing, using copy complete addresses in the pair information500, a journal is created per unit size in sequence from the head ofstorage areas for all storage areas of the primary logical volume thatis the subject of data replication. Copy complete addresses have aninitial value of 0, and the amount of data created is added each time ajournal is created. The storage areas from the head of the storage areasof each logical volume to one position prior to the copy completeaddresses represent storage areas for which journals have been createdthrough the initial copy processing. By performing the initial copyprocessing, data in the primary logical volume that have not beenupdated can be transferred to the secondary logical volume. A hostadapter A within the primary storage system 100A performs the processingaccording to the following description, but the processing may beperformed by the disk adapters 120.

(1) The host adapter A within the primary storage system 100A obtains aprimary logical volume A that is part of a pair that belongs to theasynchronous replication type group B, which is the subject ofprocessing, and whose pair state is “not copied”; the host adapter Achanges the pair state to “copying” and repeats the following processing(steps 1010, 1020). If there is no primary logical volume A, the hostadapter A terminates the processing (step 1030).

(2) If the primary logical volume A is found in step 1020 to exist, thehost adapter A creates a journal per data unit size (for example, 1 MBdata). The journal creation processing is described later (step 1040).

(3) To update data in the secondary logical volume that forms asynchronous pair with the primary logical volume A, the host adapter Asends a remote write command to the secondary storage system C, whichhas the secondary logical volume that is part of the synchronous pair.The remote write command includes a write command, a logical address(where the logical volume is the secondary logical volume C of thesynchronous pair number, and the position within the logical volume isthe copy complete address), data amount (unit size), and the updatenumber used in step 1040. Instead of the update number, the time atwhich the journal was created may be used (step 1045). The operation ofthe secondary storage system C when it receives the remote write commandwill be described in a command reception processing 210, describedlater.

(4) Upon receiving a response to the remote write command, the hostadapter A adds to the copy complete address the data size of the journalcreated (step 1050).

(5) The above processing is repeated until the copy complete addressesreach the capacity of the primary logical volume A (step 1060). When thecopy complete addresses become equal to the capacity of the primarylogical volume A, which indicates that journals have been created forall storage areas of the primary logical volume A, the host adapter Aupdates the pair state to “normal” and initiates the processing ofanother primary logical volume (step 1070).

Although logical volumes are described as the subject of copying one ata time according to the flowchart, a plurality of logical volumes can beprocessed simultaneously.

FIG. 11 is a diagram illustrating the processing of the commandreception processing 210; FIG. 12 is a flowchart of the commandreception processing 210; FIG. 13 is a flowchart of a journal creationprocessing; FIG. 23 is a flowchart of a remote write command receptionprocessing; and FIG. 24 is a flowchart of a journal replicationprocessing. Next, by referring to these drawings, a description will bemade as to an operation that takes place when the primary storage system100A receives a write command from the host computer 180 to write to thelogical volume 230 that is the subject of data replication.

(1) The host adapter A within the primary storage system 100A receivesan access command from the host computer 180. The access commandincludes a command such as a read, write or journal read command,described later, as well as a logical address that is the subject of thecommand, and data amount. Hereinafter, the logical address shall becalled a logical address A, the logical volume number a logical volumeA, the position within the logical volume a position A within thelogical volume, and the data amount a data amount A, in the accesscommand (step 1200).

(2) The host adapter A checks the access command (steps 1210, 1215,1228). If the access command is found through checking in step 1215 tobe a journal read command, the host adapter A performs the journal readreception processing described later (step 1220). If the access commandis found to be a remote copy control command, the host adapter Aperforms a remote copy control command reception processing describedlater (step 2300).

(3) If the access command is found through checking in step 1210 to be awrite command, the host adapter A refers to the logical volume A in thevolume information 400 and checks the volume state (step 1240). If thevolume state of the logical volume A is found through checking in step1240 to be other than “normal” or “primary,” which indicates that thelogical volume A cannot be accessed, the host adapter A reports to thehost computer 180 that the processing ended abnormally (step 1245).

(4) If the volume state of the logical volume A is found throughchecking in step 1240 to be either “normal” or “primary,” the hostadapter A reserves at least one cache memory 130 and notifies the hostcomputer 180 that the primary storage system 100A is ready to receivedata. Upon receiving the notice, the host computer 180 sends write datato the primary storage system 100A. The host adapter A receives thewrite data and stores it in the cache memory 130 (step 1250 1100 in FIG.11).

(5) The host adapter A refers to the volume information, pairinformation and group information of the logical volume A and checkswhether the logical volume A is the subject of asynchronous replication(step 1260). If through checking in step 1260 the volume state of thelogical volume A is found to be “primary,” the pair state of the pairwith the asynchronous pair number that the logical volume A belongs tois “normal,” and the group state of the group that the pair belongs tois “normal,” these indicate that the logical volume A is the subject ofasynchronous replication; consequently, the host adapter A performs thejournal creation processing described later (step 1265).

(6) The host adapter A refers to the volume information, pairinformation and group information of the logical volume A and checkswhether the logical volume A is the subject of synchronous replication(step 1267). If through checking in step 1267 the volume state of thelogical volume A is found to be “primary,” the pair state of the pairwith the synchronous pair number that the logical volume A belongs to is“normal,” and the group state of the group that the pair belongs to is“normal,” these indicate that the logical volume A is the subject ofsynchronous replication; consequently, the host adapter A sends to thesecondary storage system C having the logical volume that forms the pairwith the synchronous pair number a remote write command to store thewrite data received from the host computer 180 (1185 in FIG. 11). Theremote write command includes a write command, a logical address (wherethe logical volume is the secondary logical volume C that forms the pairwith the synchronous pair number, and the position within the logicalvolume is the position A within the logical volume), data amount A, andthe update number used in step 1265. Instead of the update number, thetime at which the write command was received from the host computer 180may be used. If the logical volume is found through checking in step1267 not to be the logical volume that is the subject of synchronousreplication, or if the journal creation processing in step 1265 is notsuccessful, the host adapter A sets the numerical value “0,” whichindicates invalidity, as the update number.

(7) Upon receiving a response to step 1267 or to the remote writecommand in step 1268, the host adapter A commands the disk adapter 120to write the write data to the storage area of the storage device 150that corresponds to the logical address A (1160 in FIG. 11), and reportsto the host computer 180 that the processing ended (steps 1270, 1280).Subsequently, the disk adapter 120 stores the write data in the storagearea through the read/write processing (1170 in FIG. 11).

Next, the journal creation processing will be described.

(1) The host adapter A checks the volume state of the journal logicalvolume (step 1310). If the volume state of the journal logical volume isfound through checking in step 1310 to be “abnormal,” journals cannot bestored in the journal logical volume; consequently, the host adapter Achanges the group state to “abnormal” and terminates the processing(step 1315). In such a case, the host adapter A converts the journallogical volume to a normal logical volume.

(2) If the journal logical volume is found through checking in step 1310to be in the “normal” state, the host adapter A continues the journalcreation processing. The journal creation processing entails differentprocessing depending on whether the processing is part of an initialcopy processing or a part of a command reception processing (step 1320).If the journal creation processing is a part of a command receptionprocessing, the host adapter A performs the processing that begins withstep 1330. If the journal creation processing is a part of an initialcopy processing, the host adapter A performs the processing that beginswith step 1370.

(3) If the journal creation processing is a part of a command receptionprocessing, the host adapter A checks whether the logical address A thatis the subject of writing is set as the subject of initial copyprocessing (step 1330). If the pair state of the logical volume A is“not copied,” the host adapter A terminates the processing withoutcreating any journals, since a journal creation processing will beperformed later as part of an initial copy processing (step 1335). Ifthe pair state of the logical volume A is “copying,” and if the copycomplete address is equal to or less than the position A within thelogical address, the host adapter A terminates the processing withoutcreating any journals, since a journal creation processing will beperformed later as part of an initial copy processing (step 1335).Otherwise, i.e., if the pair state of the logical volume A is “copying”and if the copy complete address is greater than the position A withinthe logical address, or if the pair state of the logical 10 volume A is“normal,” the initial copy processing is already completed, and the hostadapter A continues the journal creation processing.

(4) Next, the host adapter A checks whether a journal can be stored inthe journal logical volume. The host adapter A uses the pointerinformation 700 to check whether there are any blank areas in the updateinformation area (step 1340). If the update information latest addressand the update information oldest address in the pointer information 700are equal, which indicates that there are no blank areas in the updateinformation area, the host adapter A terminates the processing due to afailure to create a journal (step 1390).

If a blank area is found in the update information area through checkingin step 1340, the host adapter A uses the pointer information 700 tocheck whether the write data can be stored in the write data area (step1345). If the write data oldest address falls within a range of thewrite data latest address and a numerical value resulting from addingthe data amount A to the write data latest address, which indicates thatthe write data cannot be stored in the write data area, the host adapterA terminates the processing due to a failure to create a journal (step1390).

(5) If the journal can be stored, the host adapter A obtains a logicaladdress for storing the update number and update information, as well asa logical address for storing write data, and creates update informationin at least one cache memory 130. The update number set in the groupinformation 600 is a numerical value resulting from adding 1 to theupdate number of the subject group obtained from the group information600. The logical address for storing the update information is theupdate information latest address in the pointer information 700, and anumerical value resulting from adding the size of the update informationto the update information latest address is set as the new updateinformation latest address in the pointer information 700. The logicaladdress for storing the write data is the write data latest address inthe pointer information 700, and a numerical value resulting from addingthe data amount A to the write data latest address is set as the newwrite data latest address in the pointer information 700.

The host adapter A sets as the update information the numerical valuesobtained, the group number, the time at which the write command wasreceived, the logical address A within the write command, and the dataamount A (step 1350 1120 in FIG. 11). For example, if a write command towrite a data size of 100 beginning at position 800 from the head of thestorage area of the primary logical volume 1 that belongs to group 1 inthe state of the group information 600 shown in FIG. 6 and the pointerinformation 700 shown in FIG. 7 is received, the update informationshown in FIG. 22 is created. The update number for the group informationis 6, the update information latest address in the pointer informationis 600 (the update information size is 100), and the write data latestaddress is 2300.

(6) The host adapter A commands the disk adapter 120 to write the updateinformation and write data of the journal on the storage device 150 andends the processing normally (step 1360 1130, 1140 and 1150 in FIG. 11).

(7) If the journal creation processing is a part of an initial copyprocessing, the host adapter A performs the processing that begins withstep 1370. The host adapter A checks whether a journal can be created.The host adapter A uses the pointer information 700 to check whetherthere are any blank areas in the update information area (step 1370). Ifthe update information latest address and the update information oldestaddress in the pointer information 700 are equal, which indicates thatthere are no blank areas in the update information area, the hostadapter A terminates the processing due to a failure to create a journal(step 1390). Since the write data of journals is read from the primarylogical volume and no write data areas are used in the initial copyprocessing described in the present embodiment example, there is no needto check whether there are any blank areas in the write data area.

(8) If it is found through checking in step 1370 that a journal can becreated, the host adapter A creates update information in at least onecache memory 130. The time the update number was obtained is set as thetime the write command for the update information was received. Thegroup number that a pair with an asynchronous pair number of the logicalvolume belongs to is set as the group number. The update number set inthe group information 600 is a numerical value resulting from adding 1to the update number obtained from the group information 600. Thelogical address that is the subject of the initial copy processing (copycomplete address in the pair information) is set as the logical addressof the write command and the logical address of the journal logicalvolume storing the write data. The unit size of the initial copyprocessing is set as the data size of the write data. The logicaladdress for storing update information is the position of the updateinformation latest address in the pointer information 700, and anumerical value resulting from adding the size of the update informationto the update information latest address is set as the new updateinformation latest address in the pointer information 700 (step 13801120 in FIG. 11).

(9) The host adapter A commands the disk adapter 120 to write the updateinformation to the storage device 150 and ends the processing normally(step 1385 1140 and 1150 in FIG. 11).

Although the update information is described to be in at least one cachememory 130 according to the description above, the update informationmay be stored in at least one shared memory 140.

Write data does not have to be written to the storage device 150asynchronously, i.e., immediately after step 1360 or step 1385. However,if the host computer 180 issues another command to write in the logicaladdress A, the write data in the journal will be overwritten; for thisreason, the write data in the journal must be written to the storagedevice 150 that corresponds to the logical address of the journallogical volume in the update information before the subsequent writedata is received from the host computer 180. Alternatively, the writedata can be saved in a different cache memory and later written to thestorage device 150 that corresponds to the logical address of thejournal logical volume in the update information.

Although journals are stored in the storage devices 150 according to thejournal creation processing described, the cache memory 130 having apredetermined amount of memory for journals can be prepared in advanceand the cache memory 130 can be used fully before the journals arestored in the storage device 150. The amount of cache memory forjournals can be designated through the maintenance terminal, forexample.

Next, a description will be made as to a processing that takes placewhen a host adapter C of the secondary storage system 100C receives aremote write command from the primary storage system 100A (a remotewrite command reception processing). A remote write command includes awrite command, a logical address (a secondary logical volume C, aposition A within the logical volume), a data amount A, and an updatenumber.

(1) The host adapter C in the secondary system 100 C refers to thevolume information 400 for the logical volume C and checks the volumestate of the secondary logical volume C (step 2310). If the volume stateof the logical volume C is found through checking in step 2310 to beother than “secondary,” which indicates that the logical volume C cannotbe accessed, the host adapter C reports to the primary storage system100A that the processing ended abnormally (step 2315).

(2) If the volume state of the logical volume C is found throughchecking in step 2310 to be “secondary,” the host adapter C reserves atleast one cache memory 130 and notifies the primary storage system 100 Aof its readiness to receive data. Upon receiving the notice, the primarystorage system 100A sends write data to the secondary storage system100C. The host adapter C receives the write data and stores it in thecache memory 130 (step 2320).

(3) The host adapter C checks the update number included in the remotewrite command and if the update number is the invalid value “0,” whichindicates that journals were not created in the primary storage system10A, the host adapter C does not perform the journal replicationprocessing in step 2400 (step 2330).

(4) The host adapter C checks the update number included in the remotewrite command and if the update number is a valid value (a value otherthan “0”), the host adapter C checks the volume state of the journallogical volume. If the volume state of the journal logical volume is“abnormal,” which indicates that journals cannot be stored in thejournal logical volume, the host adapter C does not perform the journalreplication processing in step 2400 (step 2340).

(5) If the volume state of the journal logical volume is found throughchecking in step 2340 to be “normal,” the host adapter C performs thejournal replication processing 2400 described later.

(6) The host adapter C commands one of the disk adapters 120 to writethe write data in the storage area of the storage device 150 thatcorresponds to the logical address in the remote write command, andreports to the primary storage system A that the processing has ended(steps 2360, 2370). Subsequently, the disk adapter 120 stores the writedata in the storage area through the read/write processing.

Next, the journal replication processing 2400 will be described.

(1) The host adapter C checks whether a journal can be stored in thejournal logical volume. The host adapter C uses the pointer information700 to check whether there are any blank areas in the update informationarea (step 2410). If the update information latest address and theupdate information oldest address in the pointer information 700 areequal, which indicates that there are no blank areas in the updateinformation area, the host adapter C frees the storage area of theoldest journal and reserves an update information area (step 2415).Next, the host adapter C uses the pointer information 700 to checkwhether the write data can be stored in the write data area (step 2420).If the write data oldest address is within a range of the write datalatest address and a numerical value resulting from adding the dataamount A to the write data latest address, which indicates that thewrite data cannot be stored in the write data area, the host adapter Cfrees the journal storage area of the oldest journal and makes itpossible to store the write data (step 2425).

(2) The host adapter C creates update information in at least one cachememory 130. The update time in the remote write command is set as thetime the write command for the update information was received. Thegroup number that a pair with a synchronous pair number in the logicalvolume C belongs to is set as the group number. The update number in theremote write command is set as the update number. The logical address inthe remote write command is set as the logical address of the writecommand. The data size A in the remote write command is set as the datasize of the write data. The logical address of the journal logicalvolume for storing write data is the write data latest address in thepointer information 700, and a numerical value resulting from adding thesize of the write data to the write data latest address is set as thewrite data latest address in the pointer information 700. The logicaladdress for storing the update information is the update informationlatest address in the pointer information 700, and a numerical valueresulting from adding the size of the update information to the updateinformation latest address is set as the update information latestaddress in the pointer information 700 (step 2430).

(3) The host adapter C commands one of the disk adapters 120 to writethe update information and write data to at least one storage device150, and ends the processing as a successful journal creation (step2440). Subsequently, the disk adapter 120 writes the update informationand the write data to the storage device 150 through the read/writeprocessing and frees the cache memory 130.

In this way, the secondary storage system C frees storage areas of oldjournals and constantly maintains a plurality of new journals.

The read/write processing 220 is a processing that the disk adapters 120implement upon receiving a command from the host adapters 110 or thedisk adapters 120. The processing implemented are a processing to writedata in the designated cache memory 130 to a storage area in the storagedevice 150 that corresponds to the designated logical address, and aprocessing to read data to the designated cache memory 130 from astorage area in the storage device 150 that corresponds to thedesignated logical address.

FIG. 14 is a diagram illustrating the operation (a journal readreception processing) by a host adapter A of the primary storage system100A upon receiving a journal read command, and FIG. 15 is a flowchartof the operation. Below, these drawings are used to describe theoperation that takes place when the primary storage system 100A receivesa journal read command from the secondary storage system 100B.

(1) The host adapter A in the primary storage system 100A receives anaccess command from the secondary system 100 B. The access commandincludes an identifier indicating that the command is a journal readcommand, a group number that is the subject of the command, and whetherthere is a retry instruction. In the following, the group number withinthe access command shall be called a group number A (step 1220 1410 inFIG. 14).

(2) The host adapter A checks whether the group state of the groupnumber A is “normal” (step 1510). If the group state is found throughchecking in step 1510 to be other than “normal,” such as “abnormal,” thehost adapter A notifies the secondary storage system 100 B of the groupstate and terminates the processing. The secondary storage system 100Bperforms processing according to the group state received. For example,if the group state is “abnormal,” the secondary storage system 100 Bterminates the journal read processing (step 1515).

(3) If the group state of the group number A is found through checkingin step 1510 to be “normal,” the host adapter A checks the state of thejournal logical volume (step 1520). If the volume state of the journallogical volume is found through checking in step 1520 not to be“normal,” such as “abnormal,” the host adapter A changes the group stateto “abnormal,” notifies the secondary storage system 100B of the groupstate, and terminates the processing. The secondary storage system 100Bperforms processing according to the group state received. For example,if the group state is “abnormal,” the secondary storage system 100Bterminates the journal read processing (step 1525).

(4) If the volume state of the journal logical volume is found throughchecking in step 1520 to be “normal,” the host adapter A checks whetherthe journal read command is a retry instruction (step 1530).

(5) If the journal read command is found through checking in step 1530to be a retry instruction, the host adapter A re-sends to the secondarystorage system 100B the journal it had sent previously. The host adapterA reserves at least one cache memory 130 and commands one of the diskadapters 120 to read to the cache memory 130 information concerning thesize of update information beginning at the retry head address in thepointer information 700 (1420 in FIG. 14).

In the read/write processing, the disk adapter 120 reads the updateinformation from at least one storage device 150, stores the updateinformation in the cache memory 130, and notifies of it to the hostadapter A (1430 in FIG. 14).

The host adapter A receives the notice of the end of the updateinformation reading, obtains the write data logical address and writedata size from the update information, reserves at least one cachememory 130, and commands the disk adapter 120 to read the write data tothe cache memory 130 (step 1540 1440 in FIG. 14).

In the read/write processing, the disk adapter 120 reads the write datafrom the storage device 150, stores the write data in the cache memory130, and notifies of it to the host adapter A (1450 in FIG. 14).

The host adapter A receives the notice of the end of write data reading,sends the update information and write data to the secondary storagesystem 100B, frees the cache memory 130 that has the journal, andterminates the processing (step 1545 1460 in FIG. 14).

(6) If the journal read command is found through checking in step 1530not to be a retry instruction, the host adapter A checks whether thereis any journal that has not been sent; if there is such a journal, thehost adapter A sends the journal to the secondary storage system 100 B.The host adapter A compares the read head address to the updateinformation latest address in the pointer information 700 (step 1550).

If the read head address and the update information latest address areequal, which indicates that all journals have been sent to the secondarystorage system 100B, the host adapter A sends “no journals” to thesecondary storage system 100B (step 1560) and frees the storage area ofthe journal that was sent to the secondary storage system 100B when theprevious journal read command was processed (step 1590).

In the freeing processing of the journal storage area, a retry headaddress is set as the update information oldest address in the pointerinformation 700. If the update information oldest address becomes thewrite data area head address, the update information oldest address isset to 0. The write data oldest address in the pointer information 700is changed to a numerical value resulting from adding to the write dataoldest address the size of the write data sent in response to theprevious journal read command. If the write data oldest address becomesa logical address in excess of the capacity of the journal logicalvolume, the write data area head address is assigned a lower positionand corrected.

(7) If an unsent journal is found through checking in step 1550, thehost adapter A reserves at least one cache memory 130 and commands oneof the disk adapters 120 to read to the cache memory 130 informationconcerning the size of update information beginning at the read headaddress in the pointer information 700 (1420 in FIG. 14).

In the read/write processing, the disk adapter 120 reads the updateinformation from at least one storage device 150, stores the updateinformation in the cache memory 130, and notifies of it to the hostadapter A (1430 in FIG. 14).

The host adapter A receives the notice of the end of the updateinformation reading, obtains the write data logical address and writedata size from the update information, reserves at least one cachememory 130, and commands the disk adapter 120 to read the write data tothe cache memory 130 (step 1570 1440 in 14).

In the read/write processing, the disk adapter 120 reads the write datafrom the storage device 150, stores the write data in the cache memory130, and notifies of it to the host adapter A (1450 in FIG. 14).

The host adapter A receives the notice of the end of the write datareading, sends the update information and write data to the secondarystorage system 100B (step 1580) and frees the cache memory 130 that hasthe journal (1460 in FIG. 14). The host adapter A then sets the readhead address as the retry head address, and a numerical value resultingfrom adding the update information size of the journal sent to the readhead address as the new read head address, in the pointer information700.

(8) The host adapter A frees the storage area of the journal that wassent to the secondary storage system 100B when the previous journal readcommand was processed (step 1590).

Although the primary storage system 100A sends journals one at a time tothe secondary storage system 100B according to the journal readreception processing described, a plurality of journals may be sentsimultaneously to the secondary storage system 100B. The number ofjournals to be sent in one journal read command can be designated in thejournal read command by the secondary storage system 100B, or the usercan designate the number in the primary storage system 100A or thesecondary storage system 100B when registering groups. Furthermore, thenumber of journals to be sent in one journal read command can bedynamically varied according to the transfer capability of or load onthe connection paths 200 between the primary storage system 100A and thesecondary storage system 100B. Moreover, instead of designating thenumber of journals to be sent, the amount of journals to be transferredmay be designated upon taking into consideration the size of journalwrite data.

Although journals are read from at least one storage device 150 to atleast one cache memory 130 according to the journal read receptionprocessing described, this processing is unnecessary if the journals arealready in the cache memory 130.

Although the freeing processing of journal storage area in the journalread reception processing described is to take place during theprocessing of the next journal read command, the storage area can befreed immediately after the journal is sent to the secondary storagesystem 100 B. Alternatively, the secondary storage system 100B can setin the journal read command an update number that may be freed, and theprimary storage system 100A can free the journal storage area accordingto the instruction.

FIG. 16 is a diagram illustrating the journal read processing 240, FIG.17 is the flowchart of it, and FIG. 18 is a flowchart of a journal storeprocessing. Below, an operation by a host adapter B of the secondarystorage system 100B to read journals from the primary storage system100A and store the journals in a journal logical volume is describedbelow using these drawings.

(1) If the group state is “normal” and the replication type isasynchronous, the host adapter B in the secondary storage system 100Breserves at least one cache memory 130 for storing a journal, and sendsto the primary storage system 100A an access command that includes anidentifier indicating that the command is a journal read command, agroup number of the primary storage system 100A that is the subject ofthe command, and whether there is a retry instruction. Hereinafter, thegroup number in the access command shall be called a group number A(step 1700, 1610 in FIG. 16).

(2) The host adapter B receives a response and a journal from theprimary storage system 100A (1620 in FIG. 16).

(3) The host adapter B checks the response; if the response from theprimary storage system 100A is “no journals,” which indicates that thereare no journals that belong to the designated group in the primarystorage system 10A, the host adapter B sends a journal read command tothe primary storage system 100A after a predetermined amount of time(steps 1720, 1725).

(4) If the response from the primary storage system 100 A is “the groupstate is abnormal” or “the group state is blank,” the host adapter Bchanges the group state of the secondary storage system 100B to thestate received and terminates the journal read processing (steps 1730,1735).

(5) If the response from the primary storage system 100 A is other thanthose described above, i.e., if the response is that the group state is“abnormal,” the host adapter B checks the volume state of thecorresponding journal logical volume (step 1740). If the volume state ofthe journal logical volume is “abnormal,” which indicates that journalscannot be stored in the journal logical volume, the host adapter Bchanges the group state to “abnormal” and terminates the processing(step 1745). In this case, the host adapter B converts the journallogical volume to a normal logical volume and returns the group state tonormal.

(6) If the volume state of the journal logical volume is found throughchecking in step 1740 to be “normal,” the host adapter B performs ajournal store processing 1800 described later. If the journal storeprocessing 1800 ends normally, the host adapter B sends the next journalread command. Alternatively, the host adapter B can send the nextjournal read command after a predetermined amount of time has passed(step 1700). The timing for sending the next journal command can be aperiodic transmission based on a predetermined interval, or it can bedetermined based on the number of journals received, the communicationtraffic volume on the connection paths 200, the storage capacity forjournals that the secondary storage system 100B has, or on the load onthe secondary storage system 100B. The timing can also be determinedbased on the storage capacity for journals that the primary storagesystem 100A has or on a numerical value in the pointer information 700of the primary storage system 100A as read from the secondary storagesystem 100B. The transfer of the information can be done through adedicated command or as part of a response to a journal read command.The subsequent processing is the same as the processing that followsstep 1700.

(7) If the journal store processing in step 1800 does not end normally,which indicates that there are insufficient blank areas in the journallogical volume, the host adapter B cancels the journal received andsends a journal read command in a retry instruction after apredetermined amount of time (step 1755). Alternatively, the hostadapter B can retain the journal in the cache memory 130 and perform thejournal store processing again after a predetermined amount of time.This is due to the fact that there is a possibility that there would bemore blank areas in the journal logical volume after a predeterminedamount of time as a result of a restore processing 250, described later.If this method is used, it is unnecessary to indicate whether there is aretry instruction in the journal read command.

Next, the journal store processing 1800 shown in FIG. 18 will bedescribed.

(1) The host adapter B checks whether a journal can be stored in thejournal logical volume. The host adapter B uses the pointer information700 to check whether there are any blank areas in the update informationarea (step 1810). If the update information latest address and theupdate information oldest address in the pointer information 700 areequal, which indicates that there are no blank areas in the updateinformation area, the host adapter B terminates the processing due to afailure to create a journal (step 1820).

(2) If blank areas are found in the update information area throughchecking in step 1810, the host adapter B uses the pointer information700 to check whether the write data can be stored in the write data area(step 1830). If the write data oldest address falls within a range ofthe write data latest address and a numerical value resulting fromadding the data amount A to the write data latest address, the writedata cannot be stored in the write data area; consequently, the hostadapter B terminates the processing due to a failure to create a journal(step 1820).

(3) If the journal can be stored, the host adapter B changes the groupnumber and the logical address of the journal logical volume for storingwrite data of the update information received. The group number ischanged to the group number of the secondary storage system 100B, andthe logical address of the journal logical volume is changed to thewrite data latest address in the pointer information 700. Furthermore,the host adapter B changes the update information latest address to anumerical value resulting from adding the size of the update informationto the update information latest address, and the write data latestaddress to a numerical value resulting from adding the size of the writedata to the write data latest address, in the pointer information 700.Moreover, the host adapter B changes the update number in the groupinformation 600 to the update number of the update information received(step 1840).

(4) The host adapter B commands one of the disk adapters 120 to writethe update information and write data to at least one storage device150, and ends the processing as a successful journal creation (step 18501630 in FIG. 16). Subsequently, the disk adapter 120 writes the updateinformation and the write data to the storage device 150 through theread/write processing and frees the cache memory 130 (1640 in FIG. 16).

Although the journals are stored in the storage devices 150 according tothe journal creation processing described, the cache memory 130 having apredetermined amount of memory for journals can be prepared in advanceand the cache memory 130 can be used fully before the journals arestored in the storage device 150. The amount of cache memory forjournals can be designated through the maintenance terminal, forexample.

FIG. 19 is a diagram illustrating the restore processing 250, and FIG.20 is a flowchart of it. Below, an operation by the host adapter B ofthe secondary storage system 100B to utilize journals in order to updatedata is described below using these drawings. The restore processing 250can be performed by one of the disk adapters 120 of the secondarystorage system 10B.

(1) The host adapter B checks if the group state of the group number Bis “normal” or “halted” (step 2010). If the group state is found throughchecking in step 2010 to be other than “normal” or “halted,” such as“abnormal,” the host adapter B terminates the restore processing (step2015).

(2) If the group state is found through checking in step 2010 to be“normal” or “halted,” the host adapter B checks the volume state of thecorresponding journal logical volume (step 2020). If the volume state ofthe journal logical volume is found through checking in step 2020 to be“abnormal,” which indicates that the journal logical volume cannot beaccessed, the host adapter B changes the group state to “abnormal” andterminates the processing (step 2025).

(3) If the volume state of the journal logical volume is found to be“normal” through checking in step 2020, the host adapter B checkswhether there is any journal that is the subject of restore. The hostadapter B obtains the update information oldest address and the updateinformation latest address in the pointer information 700. If the updateinformation oldest address and the update information latest address areequal, there are no journals that are the subject of restore;consequently, the host adapter B terminates the restore processing forthe time being and resumes the restore processing after a predeterminedamount of time (step 2030).

(4) If a journal that is the subject of restore is found throughchecking in step 2030, the host adapter B performs the followingprocessing on the journal with the oldest (i.e., smallest) updatenumber. The update information for the journal with the oldest(smallest) update number is stored beginning at the update informationoldest address in the pointer information 700. The host adapter Breserves at least one cache memory 130 and commands one of the diskadapters 120 to read to the cache memory 130 information concerning thesize of update information from the update information oldest address(1910 in FIG. 19).

In the read/write processing, the disk adapter 120 reads the updateinformation from at least one storage device 150, stores the updateinformation in the cache memory 130, and notifies of it to the hostadapter B (1920 in FIG. 19).

The host adapter B receives the notice of the end of the updateinformation reading, obtains the write data logical address and writedata size from the update information, reserves at least one cachememory 130, and commands the disk adapter 120 to read the write data tothe cache memory 130 (1930 in FIG. 19).

In the read/write processing, the disk adapter 120 reads the write datafrom the storage device 150, stores the write data in the cache memory130, and notifies of it to the host adapter B (step 2040 1940 in FIG.19).

(5) The host adapter B finds from the update information the logicaladdress of the secondary logical volume to be updated, and commands oneof the disk adapters 120 to write the write data to the secondarylogical volume (step 2050 1950 in FIG. 19). In the read/writeprocessing, the disk adapter 120 writes the data to the storage device150 that corresponds to the logical address of the secondary logicalvolume, frees the cache memory 130, and notifies of it to the hostadapter B (1960 in FIG. 19).

(6) The host adapter B receives the notice of write processingcompletion from the disk adapter 120 and frees the storage area for thejournal. In the freeing processing of the journal storage area, theupdate information oldest address in the pointer information 700 ischanged to a numerical value resulting from adding the size of theupdate information thereto. If the update information oldest addressbecomes the write data area head address, the update information oldestaddress is set to 0. The write data oldest address in the pointerinformation 700 is changed to a numerical value resulting from addingthe size of the write data to the write data oldest address. If thewrite data oldest address becomes a logical address in excess of thecapacity of the journal logical volume, the write data area head addressis assigned a lower position and corrected. The host adapter B thenbegins the next restore processing (step 2060).

Although journals are read from at least one storage device 150 to atleast one cache memory 130 in the restore processing 250, thisprocessing is unnecessary if the journals are already in the cachememories 130.

Although the primary storage system 100A determines which journals tosend based on the pointer information 700 in the journal read receptionprocessing and the journal read processing 240 described, the journalsto be sent may instead be determined by the secondary storage system100B. For example, an update number can be added to the journal readcommand. In this case, in order to find the logical address of theupdate information with the update number designated by the secondarystorage system 100B in the journal read reception processing, a table ora search method for finding a logical address storing the updateinformation based on the update number can be provided in the sharedmemories 140 of the primary storage system 10A.

Although the journal read command is used in the journal read receptionprocessing and the journal read processing 240 described, a normal readcommand may be used instead. For example, the group information 600 andthe pointer information 700 for the primary storage system 100A can betransferred to the secondary storage system 100B in advance, and thesecondary storage system 100B can read data in the journal logicalvolume (i.e., journals) of the primary storage system 100A.

Although journals have been described as being sent from the primarystorage system 100A to the secondary storage system 100B in the order ofupdate numbers in the journal read reception processing, the journals donot have to be sent in the order of update numbers. Furthermore, aplurality of journal read commands may be sent from the primary storagesystem 100A to the secondary storage system 100B. In this case, in orderto process journals in the order of update numbers in the restoreprocessing, a table or a search method for finding a logical addressstoring update information based on each update number is provided inthe secondary storage system 100B.

In the computer system of the present invention, the storage system Astores information on data update as a journal. The storage system B hasa replication of data that the storage system A has; the storage systemB obtains journals from the storage system A in an autonomic manner anduses the journals to update its data that correspond to data of thestorage system A in the order of data update in the storage system A.Through this, the storage system B can replicate data of the storagesystem A, while maintaining data integrity. Furthermore, managementinformation for managing journals does not rely on the capacity of datathat is the subject of replication.

The procedure for using a host computer 180C and the storage system 100Cto resume the information processing performed by the host computer 180and to resume data replication on the storage system 100B in the eventthe primary storage system 100A fails is shown in 25; a block diagram ofthe logical configuration of the procedure is shown in. 42. The hostcomputer 180 and the host computer 180C may be the same computer.

In the following description, FIG. 4 shows the volume information, FIG.5 shows the pair information, FIG. 6 shows the group information, FIG. 7shows the pointer information, and FIG. 8 shows a diagram illustratingthe pointer information of the primary storage system 100A before itfails. FIG. 26 shows the volume information, FIG. 27 shows the pairinformation, FIG. 28 shows the group information, FIG. 29 shows thepointer information, and FIG. 30 shows a diagram illustrating thepointer information of the secondary storage system 100B (asynchronousreplication) before the primary storage system 100A fails. Since thesecondary storage system 100B performs asynchronous data replication, itmay not have all the journals that the primary storage system 100A has(update numbers 3-5). In the present example, the secondary storagesystem 100B does not have the journal for the update number 5. FIG. 31shows the volume information, FIG. 32 shows the pair information, FIG.33 shows the group information, FIG. 34 shows the pointer information,and FIG. 35 shows a diagram illustrating the pointer information of thesecondary storage system 100C (synchronous replication) before theprimary storage system 100A fails. Since the secondary storage system100C performs synchronous data replication, it has all the journals(update numbers 3-5) that the primary storage system 100A has.

(1) A failure occurs in the primary storage system 100 A and the primarylogical volumes (DATA 1, DATA 2) become unusable (step 2500).

(2) The host computer 180 issues a delta-resync command to the storagesystem 100C. The delta-resync command is a command for changing anasynchronous data replication source (primary logical volume) in a groupunit, and includes replication source information and replicationdestination information. The replication source information indicatesthe storage system number C and group number D having secondary logicalvolumes (data1, data2) of synchronous data replications. The replicationdestination information indicates the storage system number B and groupnumber B having secondary logical volumes (COPY1, COPY2) of asynchronousdata replications. Both the group numbers D and B have the deltareservation option of “1” (step 2510).

(3) Upon receiving the delta-resync command, the storage system 100Crefers to the volume information, pair information and group informationof the storage systems 100B and 100C, and changes the pair state of thelogical volumes belonging to the group C corresponding to asynchronousremote copies already existing in the storage system 100C, from “normal”to “delta-processing”. The storage system also changes the pair state ofthe logical volumes belonging to the group D in the storage system 100C,from “delta-ready” to “normal”. The storage system 100C further changesthe group information in such a manner that the group D can continuouslyuse the journal logical volumes belonging to the group C. Specifically,the storage system 100C changes the update number of the group D to theupdate number of the group C, changes the journal logical volume numberof the group D to the journal logical volume number of the group C, andsets all items of the pointer information of the group D same as thoseof the pointer information of the group C. In response to the delta-synccommand, the storage system 100C changes the pair information of thestorage system 100C shown in FIG. 32 to the pair information shown inFIG. 39, changes the group information of the storage system 100C shownin FIG. 33 to the group information shown in FIG. 40, and changes thevolume information of the storage system 100C shown in FIG. 31 to thevolume information shown in FIG. 38.

The storage system 100C changes the pair state of the logical volumesbelonging to the group C in the storage system 100C from “normal” to“delta-processing” for the storage system 100B. Similarly, the pairstate of the logical volumes belonging to the group D in the storagesystem 100C is changed from “delta-ready” to “normal”.

The storage system 100B refers to the volume information, pairinformation and group information of the storage system 100B and thestorage system 100C and makes changes to the pair information and groupinformation of the storage system 100B. By changing the pair informationfor the group B shown in FIG. 27 to the pair information shown in FIG.36, the group information shown in FIG. 28 to the group informationshown in FIG. 37, and the state of the group information for the group Bto “halted,” the storage system 100B halts the journal read processingto the storage system 100A (steps 2530, 2540).

(4) The storage system 100C sends a response to the delta-resync commandto the host computer 180 or a maintenance terminal. Upon receiving theresponse to the delta-resync command from the storage system 100C, thehost computer recognizes a completion of delta-resync and start usingthe storage system 100C (steps 2550, 2560).

(5) The storage system 100B sends a journal read position designationcommand to the storage system 100C (step 2570). The journal readposition designation command is a command to change the pointerinformation of the group D of the storage system 100C and to designate ajournal that is sent based on a journal read command from the storagesystem 100 B; the journal read position designation command includes apartner group number D and an update number B. The partner group numberD designates the partner group number for the group number B. The updatenumber designates a numerical value resulting from adding 1 to theupdate number in the group information for the group number B. In theexample shown in FIG. 37, the partner group number 2 and the updatenumber 5 are designated.

(6) Upon receiving the journal read position designation command, thestorage system 100C refers to the pointer information 700 and checkswhether there is a journal for the update number B. The storage system100C reads the update information of the update information oldestaddress in the pointer information from at least one storage device 150and obtains the oldest (smallest) update number C.

If the update number C is equal to or less than the update number B inthe journal read position designation command, which indicates that thestorage system 100C has the journal for the update number B, the storagesystem 100B can continue with the asynchronous data replication. In thiscase, the storage system 100 C frees storage areas for journals thatprecede the update number B, changes the read head address and the retryhead address to addresses for storing the update information for theupdate number B, and sends “resumption possible” to the storage system100B. Through this, the pointer information shown in FIG. 34 is changedto the pointer information shown in FIG. 41 (step 2580).

On the other hand, if the update number C is greater than the updatenumber B in the journal read position designation command, whichindicates that the storage system 100B does not have the journalrequired by the storage system 100C, the storage system 100B cannotcontinue the asynchronous data replication. In this case, datareplication must be initiated based on the procedures described using S.9 and 10 from the primary storage system 100 C to the secondary storagesystem 100B.

(7) Upon receiving the “resumption possible” response, the storagesystem 100B resumes a journal read processing to the storage system 100Cby changing the state of the group information for the group B to“normal” (step 2590).

The storage system 100B does not have to issue a journal read positiondesignation command. In this case, the storage system 100B initiates ajournal read processing and receives the oldest journal from the storagesystem 100C. If the update number C of the journal received is greaterthan a numerical value resulting from adding 1 to the update number inthe group information for the group number B (the update number B),which indicates that the storage system 100C does not have the journalrequired by the storage system 100B, the storage system 100 B halts thedata replication process. If the update number C of the journal receivedis less than the update number B, which indicates that the storagesystem 100B already has the journal, the storage system B cancels thejournal and continues the journal read processing. If the update numberC of the journal received is equal to the update number B, the storagesystem B stores the journal received in the journal logical volume andcontinues the journal read processing.

An operation to reflect data update to the primary logical volume (data1) of the primary storage system 100C on the secondary logical volume(COPY 1) of the secondary storage system 100B after the host computer180C begins to use the storage system 100C is generally described usingFIG. 42.

(1) Upon receiving a write command from the host computer 180C for datain the primary logical volume (data 1), the primary storage system 100Cupdates data in the primary logical volume (data 1) and stores journalsin the journal logical volume (jnl 1) through the command receptionprocessing 210 and the read/write processing 220, and reports the end ofthe write command to the host computer 180C (4200 in FIG. 42).

(2) The secondary storage system 100B reads journals from the primarystorage system 100C through the journal read processing 240 and storesthe journals in the journal logical volume (JNL 2) through theread/write processing 220 (4210 in FIG. 42).

(3) Upon receiving a journal read command from the secondary storagesystem 100B, the primary storage system 100C reads the journals from thejournal logical volume (jnl 1) and sends the journals to the secondarystorage system 100B through the command reception processing 210 and theread/write processing 220 (4210 in FIG. 42).

(4) The secondary storage system 100B uses the pointer information 700through the restore processing 250 and the read/write processing 220 toread the journals from the journal logical volume (JNL 2) in ascendingorder of update numbers and updates data in the secondary logical volume(COPY 1) (4220 in FIG. 42). As a result, data in the primary logicalvolume (data 1) in the primary storage system 100 C and data in thesecondary logical volume (COPY 1) in the secondary storage system 100Bmatch completely some time after the update of the primary logicalvolume.

Next, with reference to FIG. 43, description will be made on a deltarecovery process 2600 which is a recovery means after the pair state fordelta-resync transits to “abnormal delta” because of a failure such as afailure of the journal logical volume and disconnection of theconnection path 200 between the storage systems C and B, after the groupand pair for delta-resync are generated.

After detecting the pair state of “abnormal delta”, a user removes thefailure at first. Thereafter, the host computer 180 issues a deltarecovery process command. The delta recovery process command includes adesignation subject group ID, a partner storage system number B and apartner group number B.

First, the secondary storage system 100C resumes the journal replicationprocess for the group number C corresponding to the logical volume ofthe designation subject group number D (step 2610).

Next, the secondary storage system 100C changes the pair state of thelogical volumes of the group number D with “abnormal delta”, to“delta-processing” (step 2620).

Next, similar to the above-described delta reservation process, thesecondary storage system 100C checks whether delta-resync is possible(step 2630). Namely, the secondary storage system 100C judges from thefollowing comparison procedure whether replication subjects of twogroups having the pair registered for delta-resync as their replicationdestinations are coincident and also the pair numbers are coincident.

The secondary storage system 100C extracts pair information having thesame secondary storage system number and secondary logical volume numberas the primary storage system number C and primary logical volume numberC of the pair having the designated group number D, from the pairinformation 500, and acquires a primary storage system number A2 and aprimary logical volume number A1 from the extracted pair information(step 4630). Next, the secondary storage system 100C acquires, from thesecondary storage system 100B having the secondary logical storagesystem number B corresponding to the primary system number C and primarylogical volume number C, the primary storage system number A2 andprimary logical volume number A1 of a pair having as a replicationdestination the secondary storage system number B and secondary logicalvolume number B corresponding to the primary storage system number C andprimary logical volume number C and having the delta reservation optionof not “1” (step 4640). The secondary storage system 100C judges whetherthe acquired primary storage system number A1 and primary logical volumenumber A1 are coincident with the primary storage system number A2 andprimary logical volume number A2 (step 4650). This judgement isperformed for all pairs having the designated group number C at a loopfrom step 4620 to step 4660).

If this judgement indicates incoincidence, the secondary storage system100C terminates the process as an error.

Next, the secondary storage system 100C judges through comparisonwhether the journal data is transferred which is necessary fordelta-resync.

First, the secondary storage system 100C acquires, from the secondarystorage system 100B having the partner storage system number B writtenin the group number having the designated group number D and the deltareservation option of “1”, in the group information 600, a numericalvalue BR obtained by adding “1” to an update number B of the grouphaving the partner group number B written in the group number (step4672). Next, the storage system 100C refers to the pointer information700 to check whether it has the journal of the update number B. Thestorage system 100C reads update information of an update informationoldest address of the pointer information from the storage device 150 toobtain the oldest (smallest) update number C (step 4674). The storagesystem C compares the update number C with the acquired update number B1(step 4676), and if the update number C is equal to or smaller than theupdate number B1, it means that the storage system has the journal ofthe update number B, so that it is judged that delta-resync is possible(step 4678).

If it is judged that delta-resync is possible, the pair state of thepair information 500 having the group number is changed to “delta-ready”to terminate the process.

In the process described above, a command from the host computer 180 tothe storage system is issued upon an input event of a user operation viaa user interface provided by the storage management program. Thisconfiguration will be described with reference to FIG. 44. Withreference to FIG. 44, although description will be made by using thecomputer system 100A and the host computer 180 connected thereto, thedescription is also applied to the storage systems 100B and 100C.

A host computer 180 is constituted of a CPU 180-1, a main storage device180-2, an interface (I/F) 180-3, and a management I/F 180-4. A hostcomputer service processor (SVP) 180-5 is connected to the host computer180.

CPU 180-1 is a processor for the host computer 180. Namely, CPU 180-1reads and executes OS, programs and the like stored in the main storagedevice 180-2 to perform various processes defined by OS and programs.

The main storage device 180-2 is a memory such as DRAM. The main storagedevice 180-2 stores an OS 180-6 and a storage management program 180-7.

OS 180-6 is an operating system for the host computer 180. As OS 180-6is executed by CPU 180-1, the host computer 180 performs fundamentaloperations.

The storage management program 180-7 issues a control command to thecomputer system 100 to manage a storage system 100, and is a program forsupplying a user interface, this program being read and executed by CPU180-1.

I/F 180-3 is an interface for data transfer relative to the storagesystem 100.

A host computer SVP 180-5 is an input/output control terminal forissuing a command such as a maintenance command to the host computer 180in accordance with an instruction by a manager. The host computer 180has the management I/F 180-4 which is an interface for data transferrelative to the host computer SVP 180-5.

The storage management program 180-7 performs storage managementincluding pair generation and state information display for delta-resyncdescribed in the embodiment.

A command reception process 210 performs a command reception processincluding a pair reservation process and pair state management fordelta-resync described in the embodiment.

Pair information 600 includes state information of a reservation pairfor delta-resync described in the embodiment. The details of the pairinformation 500 are shown, for example, in FIGS. 5, 27 and 32.

Group information 600 includes option information of a reservation pairfor delta-resync described in the embodiment. The details of the groupinformation 600 are shown, for example, in FIGS. 6, 28 and 33.

The host computer 180 may have a graphical user interface (GUI) forfacilitating user data input. For example, GUI displays the storagesystems 100A, 100B and 100C connected to the host computer 180, on thehost computer SVP 180-5 by using the connection topology thereof. Uponreceiving an instruction from a user, GUI may generate managementcommand information for remote copy pairs in the storage systems 100A,100B and 100C, to supply the information to the storage managementprogram 180-7. GUI may visually display pairs including delta-resyncpairs and group information of the storage systems 100A, 100B and 100C,on the host computer SVP 180-5. In this manner, a user can select eachpair and group by using GUI interface, and can easily instruct adelta-resync operation to the host computer 180. Pair information fordelta-resync between the storage systems 100B and 100C may be identifiedby referring to pair information between the storage systems 100A and100B and between the storage systems 100A and 100C. In this case, erroroccurrence in the delta reservation process can be reduced. An exampleof GUI is shown in FIG. 45.

In the computer system of the above-described embodiment, the computersystem C generates a journal by using the update number and update timeof the computer system S. If the storage system A, which is the subjectof data replication, fails and information processing is continued usingthe storage system C, the storage system B changes the journalacquisition source from the storage system A to the storage system C. Asa result, the storage system B can continue to replicate data of thestorage system A, while maintaining data integrity. Furthermore,management information for managing journals does not rely on thecapacity of data that is the subject of replication.

In the above-described computer system of the present invention, thepair state for delta-resync is displayed to a user by using three statesincluding “delta-ready” able to perform delta-resync, “abnormal delta”such as a failure requiring a user operation, and “delta-processing”unable to perform delta-resync such as during a delta-resync pairregistration process and during a recovery process from “abnormaldelta”. A user is provided with a delta reservation procedure ofregistering delta-resync pairs as dedicated pairs before thedelta-resync is performed. A user is also provided with a delta recoveryprocedure for indicating a pair state transition from “delta-processing”and “abnormal delta” to “delta-ready”. A user can therefore managedelta-resync pairs before delta-resync is instructed.

As described so far, according to the computer system of the embodiment,when scheduling is stopped because of a failure or maintenance of thecomputer system executing business transactions by using the computersystem A or storage system A, the business transactions are required tobe continued. To this end, data-resync is executed for ensuring dataintegrity between the storage system C and storage system B by copyingdata corresponding to difference data therebetween. In this case, datatransfer settings between the storage systems C and B can be monitoredbeforehand by the host computer. It is therefore possible to eliminatethe state unable to perform delta-resync. It is therefore possible toelongate the period able to perform delta-resync. Even if a failureoccurs in the storage system, the storage system C can performdelta-resync immediately and inherit business transactions. While thedescription above refers to particular embodiments of the presentinvention, it will be understood that many modifications may be madewithout departing from the spirit thereof. The accompanying claims areintended to cover such modifications as should fall within the truescope and spirit of the present invention.

It should be further understood by those skilled in the art thatalthough the foregoing description has been made on embodiments of theinvention, the invention is not limited thereto and various changes andmodifications may be made without departing from the spirit of theinvention and the scope of the appended claims.

1. A first storage apparatus coupled to a second storage apparatus and athird storage apparatus, the first storage apparatus stores replicationdata of the third storage apparatus synchronously and the second storageapparatus stores replication data of the third storage apparatusasynchronously, comprising: a memory having a-state information whichindicates a state of a pair including the first storage apparatus andthe second storage apparatus, and a pair including the first storageapparatus and the third storage apparatus, and having the state ofdelta-ready, delta-processing and abnormal delta; and a controller whichjudges whether a data of difference between the first storage apparatusand the second storage apparatus is able to be replicated or not byreferring to the state information, sends a result of the judgment to ahost computer coupled with the first storage apparatus and reserves thepair for delta-resync by referring the state information.
 2. A firststorage apparatus according to claim 1, wherein the memory furthercomprises a group information which includes an identifier of a logicalvolume of the first storage apparatus, the second storage apparatus orthe third storage apparatus, and wherein the logical volumes of thegroup are required to maintain an update order.
 3. A first storageapparatus according to claim 2, wherein the group information furtherincludes a delta reservation option which shows whether delta-resync isavailable or not.
 4. A first storage apparatus according to claim 3,wherein, if the controller reserves the pair, the controller furthermorerefers the group information.
 5. A first storage apparatus according toclaim 4, wherein, when the controller reserves the pair, the controllerset the state of the pair to delta-ready.
 6. A first storage apparatusaccording to claim 5, wherein the state information further includes thestate of normal, abnormal, blank, copying and not copied.
 7. A storagesystem comprising: a set of storage apparatus including a first storageapparatus coupled to a second storage apparatus and a third storageapparatus, the first storage apparatus stores replication data of thethird storage apparatus by synchronous and the second storage apparatusstores replication data of the third storage apparatus by asynchronous,and a host computer coupling to the first storage apparatus, wherein thefirst storage apparatus has a-state information which is a state of apair including the first storage apparatus and the second storageapparatus and a pair including the first storage apparatus and the thirdstorage apparatus and has a state of delta-ready, delta-processing andabnormal delta, and judges whether data of difference between the firststorage apparatus and the second storage apparatus is able to bereplicated or not by referring to the state information, and reservesthe pair for delta-resync by referring the state information, andwherein the host computer displays a result of the judgment on a displayserver provided on the host computer.
 8. A storage system according toclaim 7, wherein the first storage apparatus further comprises a groupinformation which includes an identifier of a logical volume of thefirst storage apparatus, the second storage apparatus or the thirdstorage apparatus, and wherein the logical volumes of the group arerequired to maintain an update order.
 9. A storage system according toclaim 8, wherein the group information further includes a deltareservation option which shows whether delta-resync is available or not.10. A storage system according to claim 9, wherein, if the first storageapparatus reserves the pair, the first storage apparatus furthermorerefers the group information.
 11. A storage system according to claim10, wherein, when the first storage apparatus reserves the pair, thefirst storage apparatus set the state of the pair to delta-ready.
 12. Astorage system according to claim 11, wherein the state informationfurther includes the state of normal, abnormal, blank, copying and notcopied.
 13. A storage system according to claim 12, wherein the resultof the judgment includes whether the first storage apparatus is requireda command or not.
 14. A storage system according to claim 13, whereinthe result of the judgment includes how to replicate a data between thefirst storage apparatus and the third storage apparatus.